﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using VentaElectrodomesticos.Sql;
using System.Data.SqlClient;
using VentaElectrodomesticos.AbmUsuario;
using VentaElectrodomesticos.Utilities;

namespace VentaElectrodomesticos.AbmEmpleado
{
    public partial class FormModificarEmpleado : Form
    {
        private ClaseSQL sql;

        public FormModificarEmpleado()
        {
            InitializeComponent();
            sql = new ClaseSQL();
            sql.llenarCombo(this.comboBoxProvincias, "SELECT idProvincia, nomProvincia FROM LAG.provincias");
            sql.llenarCombo(this.comboBoxSucursal, "SELECT idSucursal, direccion FROM LAG.sucursales");
            sql.llenarCombo(this.comboBoxTipo, "select idTipoUsu, nomTipoUsu from LAG.usuarios_tipos");
        }

        private void buttonBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                dataGridView.Rows.Clear();
                sql.Open();

                String condiciones = "";
                condiciones += Utils.agregarCondicionExacta(condiciones, "dni", textBoxDni.Text, true);
                condiciones += Utils.agregarCondicion(condiciones, "nombre", textBoxNombre.Text);
                condiciones += Utils.agregarCondicion(condiciones, "apellido", textBoxApellido.Text);
                condiciones += Utils.agregarCondicionConKeyValue(condiciones, "empl.idProvincia", comboBoxProvincias.SelectedItem);
                condiciones += Utils.agregarCondicionConKeyValue(condiciones, "empl.idSucursal", comboBoxSucursal.SelectedItem);
                condiciones += Utils.agregarCondicionConKeyValue(condiciones, "empl.idTipoUsu", comboBoxTipo.SelectedItem);

                String query = "SELECT nombre,apellido,dni,mail,nomProvincia,suc.direccion,nomTipoUsu,idPersona FROM LAG.vw_empleados empl"
                    + " LEFT JOIN LAG.provincias prov ON empl.idProvincia = prov.idProvincia"
                    + " LEFT JOIN LAG.sucursales suc ON empl.idSucursal = suc.idSucursal"
                    + " LEFT JOIN LAG.usuarios_tipos ut ON empl.idTipoUsu = ut.idTipoUsu"
                    + condiciones;


                SqlDataReader reader = sql.busquedaSQLDataReader(query);
                while (reader.Read())
                {
                    dataGridView.Rows.Add(
                        reader["idPersona"],                        
                        reader["nombre"].ToString(),
                        reader["apellido"].ToString(),
                        reader["dni"].ToString(),
                        reader["mail"].ToString(),
                        reader["nomProvincia"].ToString(),
                        reader["direccion"].ToString(),
                        reader["nomTipoUsu"].ToString()
                    );
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error al buscar empleado");
            }
            finally
            {
                sql.Close();
            }
        }

        private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            sql.Open();
            String sQuery = "SELECT a.idPersona, a.dni, a.nombre, a.apellido, a.mail, a.telefono, a.direccion, b.nomProvincia,a.status,c.nomTipoUsu,e.idSucursal ";
            sQuery += "FROM LAG.personas a LEFT JOIN LAG.provincias b ON b.idProvincia = a.idProvincia ";
            sQuery += "LEFT JOIN LAG.usuarios e ON e.idPersona = a.idPersona ";
            sQuery += "LEFT JOIN LAG.usuarios_tipos c ON c.idTipoUsu = e.idTipoUsu ";
            sQuery += "WHERE a.idPersona = " + dataGridView[0, e.RowIndex].Value.ToString();

            
            SqlDataReader query = sql.busquedaSQLDataReader(sQuery);

            FormEditarEmpleado formEditarUsuario;
            if (query.Read())
            {
                formEditarUsuario = new FormEditarEmpleado(query[0].ToString(), //id
                                                           query[1].ToString(), //dni
                                                           query[2].ToString(), //nombre
                                                           query[3].ToString(), //apellido
                                                           query[4].ToString(), //mail
                                                           query[5].ToString(), //telefono
                                                           query[6].ToString(), //direccion
                                                           query[7].ToString(), //provincia
                                                           query[8].ToString(), //status
                                                           query[9].ToString(), //tipo
                                                           query[10].ToString()); //idSucursal 
                formEditarUsuario.ShowDialog(this);
            }

            sql.Close();
        }

        private void buttonLimpiar_Click(object sender, EventArgs e)
        {
            Utils.ClearTextBoxes(groupBox1);
            comboBoxProvincias.SelectedIndex = -1;
            comboBoxSucursal.SelectedIndex = -1;
            comboBoxTipo.SelectedIndex = -1;
            dataGridView.Rows.Clear();
        }
        private void ingresarSoloNumericos(object sender, KeyPressEventArgs e)
        {
            if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "[0-9\b]+"))
                e.Handled = true;
        }
    }
}
